package com.test.tcp.file;

import java.io.*;
import java.net.Socket;

/**
 * 客户端上传文件
 * 创建客户端
 * 1.建立连接;使用Socket创建客户端,并指定服务器端地址 + 端口
 * 2.操作:输入输出流操作
 * 3.释放资源
 *
 * @create: 2019-05-29 22:37
 **/
public class FileClient {
    public static void main(String[] args) throws IOException {
        System.out.println("客户端已启动...");

        //1.建立连接;使用Socket创建客户端,并指定服务器端地址 + 端口
        Socket client = new Socket("localhost", 8888);

        //2.操作:输入输出流操作;对于客户端来说是使用输出流
        //将文件输入到内存中,再使用输出流输出
        InputStream is = new BufferedInputStream(new FileInputStream("src/003.jpg"));
        OutputStream os = new BufferedOutputStream(client.getOutputStream());

        //从内存中输出文件
        byte[] flush = new byte[1024];
        int l = -1;
        //以前写过的从内存中输出字节数组
        while ((l = is.read(flush)) != -1) {
            os.write(flush, 0, l);
        }
        os.flush();

        //3.释放资源
        os.close();
        is.close();
        client.close();

    }
}
